package main

import (
	"fmt"
	"strconv"
)

func main() {
	/*
		strconv包：字符串和基本类型之间的转换
			string convert

		在go语言中，“+”两边的数据类型必须一致
				整数只能加整数，用于加法运算
				字符串只能加字符串，用于字符串的拼接
	*/
	s := "喜羊羊" + "吊炸天"
	fmt.Println(s) //喜羊羊吊炸天
	//1.bool 类型
	s1 := "true"
	b1, err := strconv.ParseBool(s1)
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Printf("%T,%t\n", b1, b1) //bool,true

	ss1 := strconv.FormatBool(b1)
	fmt.Printf("%T,%s\n", ss1, ss1) //string,true

	//2.整数
	s2 := "100"
	i2, err := strconv.ParseInt(s2, 2, 64) //base表示将字符串转为 base 进制的数
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Printf("%T,%d\n", i2, i2) //int64,4

	ss2 := strconv.FormatInt(i2, 10)
	fmt.Printf("%T,%s\n", ss2, ss2) //string,4

	//itoa(),atoi()
	i3, err := strconv.Atoi("-42")  //string 类型转换为 int 类型
	fmt.Printf("%T,%d\n", i3, i3)   //int,-42
	ss3 := strconv.Itoa(-42)        // int 类型转换为 string 类型
	fmt.Printf("%T,%s\n", ss3, ss3) //string,-42
}
